package cn.iwit.model;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

public class SysUser implements Serializable{
    private Long userid;

    /**
     * 账号
     */
    private String username;

    private String password;

    private String cname;

    /**
     * 1：为管理员
     */
    private Integer administrator;

    /**
     * 0：为男
     * 1：为女
     */
    private Integer sex;

    private String mobile;

    private String email;

    /**
     * 1：为可用 默认为1
     */
    private Integer enabled;

    private String remark;

    private String adduser;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addtime;

    private String modifyuser;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifytime;

    /**
     * 加密密码的盐
     */
    private String salt;

    /**
     * 用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定
     */
    private String state;

    private String token;

    private String credentialsSalt;


    /**
     * @return userid
     */
    public Long getUserid() {
        return userid;
    }

    /**
     * @param userid
     */
    public void setUserid(Long userid) {
        this.userid = userid;
    }

    /**
     * 获取账号
     *
     * @return username - 账号
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置账号
     *
     * @param username 账号
     */
    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    /**
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * @param password
     */
    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    /**
     * @return cname
     */
    public String getCname() {
        return cname;
    }

    /**
     * @param cname
     */
    public void setCname(String cname) {
        this.cname = cname == null ? null : cname.trim();
    }

    /**
     * 获取1：为管理员
     *
     * @return administrator - 1：为管理员
     */
    public Integer getAdministrator() {
        return administrator;
    }

    /**
     * 设置1：为管理员
     *
     * @param administrator 1：为管理员
     */
    public void setAdministrator(Integer administrator) {
        this.administrator = administrator;
    }

    /**
     * 获取0：为男
     * 1：为女
     *
     * @return sex - 0：为男
     * 1：为女
     */
    public Integer getSex() {
        return sex;
    }

    /**
     * 设置0：为男
     * 1：为女
     *
     * @param sex 0：为男
     *            1：为女
     */
    public void setSex(Integer sex) {
        this.sex = sex;
    }

    /**
     * @return mobile
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * @param mobile
     */
    public void setMobile(String mobile) {
        this.mobile = mobile == null ? null : mobile.trim();
    }

    /**
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email
     */
    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    /**
     * 获取1：为可用 默认为1
     *
     * @return enabled - 1：为可用 默认为1
     */
    public Integer getEnabled() {
        return enabled;
    }

    /**
     * 设置1：为可用 默认为1
     *
     * @param enabled 1：为可用 默认为1
     */
    public void setEnabled(Integer enabled) {
        this.enabled = enabled;
    }

    /**
     * @return remark
     */
    public String getRemark() {
        return remark;
    }

    /**
     * @param remark
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * @return adduser
     */
    public String getAdduser() {
        return adduser;
    }

    /**
     * @param adduser
     */
    public void setAdduser(String adduser) {
        this.adduser = adduser == null ? null : adduser.trim();
    }

    /**
     * @return addtime
     */
    public Date getAddtime() {
        return addtime;
    }

    /**
     * @param addtime
     */
    public void setAddtime(Date addtime) {
        this.addtime = addtime;
    }

    /**
     * @return modifyuser
     */
    public String getModifyuser() {
        return modifyuser;
    }

    /**
     * @param modifyuser
     */
    public void setModifyuser(String modifyuser) {
        this.modifyuser = modifyuser == null ? null : modifyuser.trim();
    }

    /**
     * @return modifytime
     */
    public Date getModifytime() {
        return modifytime;
    }

    /**
     * @param modifytime
     */
    public void setModifytime(Date modifytime) {
        this.modifytime = modifytime;
    }

    /**
     * 获取加密密码的盐
     *
     * @return salt - 加密密码的盐
     */
    public String getSalt() {
        return salt;
    }

    /**
     * 设置加密密码的盐
     *
     * @param salt 加密密码的盐
     */
    public void setSalt(String salt) {
        this.salt = salt == null ? null : salt.trim();
    }

    /**
     * 获取用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定
     *
     * @return state - 用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定
     */
    public String getState() {
        return state;
    }

    /**
     * 设置用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定
     *
     * @param state 用户状态,0:创建未认证（比如没有激活，没有输入验证码等等）--等待验证的用户 , 1:正常状态,2：用户被锁定
     */
    public void setState(String state) {
        this.state = state == null ? null : state.trim();
    }

    /**
     * @return
     */
    public String getCredentialsSalt() {
        return this.username + this.salt;
    }

    public String setCredentialsSalt(String credentialsSalt) {
        return this.credentialsSalt = credentialsSalt;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }
}